package com.imooc.o2o.service;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.springframework.web.multipart.MultipartFile;

import com.imooc.o2o.dto.ReachPointExecution;
import com.imooc.o2o.dto.StudentExecution;
import com.imooc.o2o.entity.Excel;
import com.imooc.o2o.entity.GradeSubject;
import com.imooc.o2o.entity.ReachPoint;
import com.imooc.o2o.entity.Student;
import com.imooc.o2o.excptions.ExcelOperationException;
import com.imooc.o2o.excptions.ReachPointOperationException;
import com.imooc.o2o.excptions.StudentOperationException;

public interface StudentService {
	/**
	 * 查询表单的评价信息
	 * @param excelId
	 * @return
	 */
	List<Student> queryStudentList(long userId);
	/**
	 * 批量添加
	 * @param reachPointList
	 * @return
	 * @throws ReachPointOperationException
	 */
	 StudentExecution batchAddStudent(List<Student> studentList) throws ReachPointOperationException ;
	/**
	 * 删除
	 * @param pointId
	 * @param excelId
	 * @return
	 * @throws ReachPointOperationException
	 */
	StudentExecution deleteStudent(int studentId,long userId) throws ReachPointOperationException;
	/**
	 * 导入学生信息
	 * @param userExcel
	 * @param excelId
	 * @param userId
	 * @throws IOException
	 * @throws InvalidFormatException
	 */
	void importExcel(MultipartFile userExcel,int excelId,long userId) throws IOException, InvalidFormatException;
	/**
	 * 通过pointId查询
	 * @param reachPoint
	 * @return
	 * @throws ExcelOperationException
	 */
	Student getStudent(int exeStudentId) throws StudentOperationException;
	/**
	 * 修改学生信息系
	 * @param student
	 * @return
	 * @throws StudentOperationException
	 */
	StudentExecution modifyStudent(Student student) throws StudentOperationException;
	/**
	 * 查询
	 */
	Student getStudentByExcelId(long excelId);
	/**
	 * 通过excel查询
	 * @param excelId
	 * @return
	 */
	List<Student> getStudentListByExcel(long excelId);
}
